package Mysql.v1;

import java.sql.*;

/** JDBC可以完成CRUD操作【增加、修改、删除】
 * 使用JDBC规范 查询操作
 * 1.加载驱动：注册Mysql驱动
 * 2.准备SQL：链接成功Mysql服务器
 * 3.发送SQL：执行查询操作
 * 4.查询结果集：ResultSet 接口
 * 5.处理结果集：显示查询数据
 * 6.关闭资源
 */
public class MysqlJDBCv1 {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        //1.注册Mysql驱动--Java---Driver接口
        Class.forName("com.mysql.jdbc.Driver");
        //2.准备SQL，同时准备发送sql工具类
        String username="root";
        String password="";
        String url="jdbc:mysql://127.0.0.1:3306/mi?characterEncoding=UTF-8";
        //链接成功Mysql sql工具类---Java-- DriverManager
        //DriverManager 接口-->getConnection方法：传入3个参数
        //getConnection方法连接成功-->返回对象Connection对象
        //顺利打印Connection对象：代表JDBC链接Mysql成功
        Connection con=DriverManager.getConnection(url,username,password);
        //打桩：测试是否链接成功
        System.out.println("测试是否Java链接数据库对象"+con);

        //3.发送SQL：查询mi库-->book表数据
        String sql="select * from books";
        //通过连接成功Connection对象.createStatement()
        //createStatement()链接数据库，返回Statement对象
        //Statement对象-- Java---链接数据库并且返回Statement对象
        //Statement对象：执行静态sql--具备CRUD功能：增删改查
        Statement st= con.createStatement();
        //4.executeUpdate(sql) 增删改  操作  使用方法
        //                                        成功几条sql
        // executeQuery(sql)    查询  操作  使用方法  返回 ResultSet接口
        //                                       查询结果表
        ResultSet rs=st.executeQuery(sql);
        // ResultSet 对象--Java--查询到的数据保存对象
        //5.处理结果：显示book表所有记录数【数据】
        System.out.println("--------查询books表结果------------");
        // 显示数据---book表哪些字段，类型必须知道
        //    取 【显示】 7个字段，类型 mysql int【整型】 varchar【字符串】
        //    取【显示】 7个字段 ， 类型 Java  int 【整型】String【字符串】
        //ResultSet  对象提供方法  next()  依次取出每个字段记录【数据】
        // 前提：不知道有多少字段：依次提出---where循环
        while (rs.next()){   //依次取出每个【7个]字段记录
            //get类型(“字段名”)  取字段名下类型
             int id=rs.getInt("id");
             // getString("字段名“) 取字段名下类型
           String author= rs.getString("author");
            String name= rs.getString("name");
            int price= rs.getInt("price");
            String date= rs.getString("date");
           int number=rs.getInt("number");
            String discount= rs.getString("discount");
            //打桩：打印作者记录
            System.out.println("作者："+author+"打折情况"+discount);
        }
    }
}